/**
 * JSparrow - Une version numérique du jeu "Attention Pirates !" - Copyright (C) 2014 Black Pearl
 *
 * This program is free software: you can redistribute it and/or modify it under the terms of the
 * GNU General Public License as published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
 * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along with this program. If
 * not, see <http://www.gnu.org/licenses/>.
 */
package App.Modele;

import java.io.Serializable;

/**
 * Classe de gestion de bateau.
 *
 * @author BlackPearl
 */
public class Joueur implements Serializable {

    public static int lastId = 0;
    private final String nom;
    private int score;
    private final int id;
    private Bateau bateau;
    private int numTour;

    /**
     * Initalisation du contexte.
     *
     * @param nom nom du joueur
     */
    public Joueur(String nom) {
        this.nom = nom;
        this.score = 0;
        this.id = Joueur.lastId++;
        this.bateau = new Bateau(id);
        this.numTour = 0;
    }

    /**
     * Vérifier que le joueur peut attaquer.
     *
     * @return true s'il peut attaquer, false sinon
     */
    public boolean peutAttaquer() {
        return this.bateau.peutAttaquer();

    }
    
    public int getNumTour()
    {
    	return this.numTour;
    }
    
    public void incNumTour()
    {
    	this.numTour++;
    }

    /**
     * Obtenir le bateau du joueur.
     * 
     * @return bateau du joueur
     */
    public Bateau getBateau() {
        return this.bateau;
    }

    /**
     * Obtenir le score du joueur.
     * 
     * @return score du joueur
     */
    public int getScore() {
        return this.score;
    }

    /**
     * Obtenir le nom du joueur.
     * 
     * @return nom du joueur
     */
    public String getNom() {
        return this.nom;
    }

    /**
     * Définir le score d'un joueur.
     *
     * @param score le score du joueur
     */
    public void setScore(int score) {
        this.score = score;
    }
    
    public int getID()
    {
    	return this.id;
    }
}
